"""
Управление именами пользователей (никами).

Author: Milinuri Nirvalen
Ver: 1.1 (3)
"""

from chiori import Plugin, Config

p = Plugin(name='клички')
filepath = 'data/nicknames.toml'
d_args = ['del', 'rm', 'remove', 'delete', 'off',
		'удалить', 'стереть', 'убрать', 'отключить', 'выкл']

# handlers
# ########

@p.eventHandler('before')
async def _(event, ctx):
	c = Config(None, filepath=filepath)
	uid = str(event.get('from.id'))

	if uid in c.file_data.get('users', {}):
		nick = c.file_data['users'][uid]

		if event.get('level') == 10:
			sim = '★'
		elif event.get('from.is_admin'):
			sim = '☆'
		else:
			sim = ''

		ctx.event.set('from.username', f'{sim}{nick}')


# commands
# ########

@p.command('nick', 'ник', 'кличка', 'name', 'имя',
	usage='[nick/rm] настройка клички')
async def setUserNick(event, ctx):
	c = Config(None, filepath=filepath)
	uid = str(event.get('from.id'))

	if not ctx.sargs:
		if uid in c.file_data['users']:
			await ctx.message(f'ваша кличка: "{c.file_data["users"][uid]}".')
		else:
			await ctx.message('Вы не настроили себе кличку.')

	else:
		if ctx.sargs in d_args and uid in c.file_data['users']:
			del c.file_data['users'][uid]
			c.save()
			await ctx.message('Вы удалили свою кличку.')

		elif len(ctx.sargs) <= 15:
			c.file_data['users'][uid] = ctx.sargs
			c.save()
			await ctx.message(f'кличка "{ctx.sargs}" была установлена.')
		else:
			await ctx.message(f'слишком длинная кличка. ({len(ctx.sargs)}/15 с.)')
